package com.xhwl.logistics.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.xhwl.logistics.bo.VehicleAccessRecordBO;
import com.xhwl.logistics.bo.cent.VehicleIntegratedConfigBO;
import com.xhwl.logistics.bo.input.*;
import com.xhwl.logistics.dto.push.CarInDataCoSonDTO;
import com.xhwl.logistics.dto.push.CarOutDataCoSonDTO;
import com.xhwl.logistics.dto.query.VehicleAccessRecordSecondDTO;
import com.xhwl.logistics.entity.VehicleAccessRecord;
import com.xhwl.logistics.vo.AccessRecordTrendVo;
import com.xhwl.logistics.vo.AccessTrendQuery;
import com.xhwl.logistics.vo.VehicleAccessRecordSecondVO;

import java.util.List;

public interface IVehicleAccessRecordService {

    IPage<VehicleAccessRecordBO> accessRecord(QueryVehicleAccessRecordBO queryVehicleAccessRecordBO, PageBO pageBO);

    IPage<VehicleAccessRecordBO> accessRecordForPlateNumberDuplicateRemoval(QueryVehicleAccessRecordSecondBO queryVehicleAccessRecordSecondBO, PageBO pageBO);

    Integer accessRecordForCount(QueryVehicleAccessRecordForCountBO queryVehicleAccessRecordForCountBO);

    Integer accessRecordForCountWU(QueryVehicleAccessRecordForCountBO queryVehicleAccessRecordForCountBO);

    VehicleIntegratedConfigBO enterCarRecord(CarInDataCoSonDTO carInDataCoSonDTO);

    VehicleIntegratedConfigBO outCarRecord(CarOutDataCoSonDTO carOutDataCoSonDTO);

    List<VehicleAccessRecord> list(VehicleAccessRecord vehicleAccessRecord);


    /**
     * 获取最新的进记录和出记录
     * @param vehicleAccessRecordSecondDTO
     * @return
     */
    IPage<VehicleAccessRecordSecondVO> accessRecordForInOut(VehicleAccessRecordSecondDTO vehicleAccessRecordSecondDTO);

    Integer accessRecordForInFromToday(QueryVehicleCarportBO queryVehicleCarportBO);

    Integer accessRecordForOutFromToday(QueryVehicleCarportBO queryVehicleCarportBO);

    List<AccessRecordTrendVo> accessRecordTrendThirtyDays(AccessTrendQuery query);
}
